#include "utils.h"
#include <iostream>

int main(int argc, char** argv){

     if(argv[1] != NULL){
        std::string str (argv[1]); //path para arquivo de entrada
        std::string arquivo_geral("root");
	std::string path = arquivo_geral + ".mt";
        LerArquivo(arquivo_geral, str);
        CriarArquivoOutput(arquivo_geral, path);
        AdicionarHeader(arquivo_geral, banco_de_mts[arquivo_geral]);
        ProcessarMaquinas(arquivo_geral, banco_de_mts[arquivo_geral]);
        FazerTransicoes(arquivo_geral,  banco_de_mts[arquivo_geral]);
        FecharArquivoOutput(banco_de_mts[arquivo_geral]);
    }
    return 0;
}








//    FILE *p;

//    p = fopen("conf-diagrama.txt","r");
//        char maquina_nome[20];
//        char maquina_nome_ini[20];
//        char maquina_nome_fim[20];
//        char maquina_caminho[100];
//        char entrada_tipo[20];

//        char maquina_inicial[20];
//        char numero_de_computacoes[10];

//        //entrada_tipo == 'entrada' quer dizer que vamos ler o nome de uma máquina e o nome dela
//        //lemos os nomes das maquinas e os seus caminhos -----------------------------------------------------------------------------
//        fscanf(p, "%s", entrada_tipo);

//        do{
//            fscanf(p, "%s", maquina_nome);
//            fscanf(p, "%s", maquina_caminho);


//            cout << "tipo: " << entrada_tipo << endl;
//            cout << "nome: " << maquina_nome << endl;
//            cout << "caminho: " << maquina_caminho << endl<< endl;

//            fscanf(p, "%s", entrada_tipo);
//        }while(strcmp(entrada_tipo,"maquina") == 0);
//        // todos os nomes das maquinas e seus caminhos foram lidos ---------------------------------------------------------------------------------

//        strcpy(maquina_inicial,entrada_tipo); //copia para maquina inicial a ultima coisa que foi lida.
//        fscanf(p,"%s",numero_de_computacoes);

//        cout << "A maquina inicial eh : " << maquina_inicial<<endl;
//        cout << "O numero maximo de computacoes eh : " << numero_de_computacoes<<endl<<endl;

//        //inicia a parte que le as regras que levam de uma maquina para outra------------------------------------------------------------------------
//        fscanf(p, "%s", entrada_tipo);

//        while(strcmp(entrada_tipo,"regra") == 0){
//            fscanf(p,"%s",maquina_nome_ini);
//            cout << "a maquina " << maquina_nome_ini << " quando le ";

//            char simbolo;
//            fscanf(p,"%c", &simbolo);
//            while(simbolo != ']'){
//                if(simbolo != '[' && simbolo != ',' && simbolo!=' '){
//                    cout << " " << simbolo ;
//                }
//                fscanf(p,"%c", &simbolo);
//            }

//            fscanf(p,"%s",maquina_nome_fim);
//            cout << " vai para " << maquina_nome_fim << endl;

//            fscanf(p, "%s", entrada_tipo);
//        }

//        //-------------------------------------------------------------------------------------------------------------------------------------------


//    fclose(p);
